home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
WINDOWS
/
WDASM12.ARJ
/
HELLO2.ASM
< prev
next >
Wrap
Assembly Source File
|
1992-10-23
|
22KB
|
1,295 lines
TITLE WDASM Example Program
.286
.MODEL SMALL
EXTRN DEFWINDOWPROC:FAR
EXTRN GETMESSAGE:FAR
EXTRN TRANSLATEMESSAGE:FAR
EXTRN FATALEXIT:FAR
EXTRN DISPATCHMESSAGE:FAR
EXTRN GETVERSION:FAR
EXTRN GETDOSENVIRONMENT:FAR
EXTRN LOCALALLOC:FAR
EXTRN LOCALREALLOC:FAR
EXTRN LOCALFREE:FAR
EXTRN FATALAPPEXIT:FAR
EXTRN LOCALSIZE:FAR
EXTRN UPDATEWINDOW:FAR
EXTRN GLOBALREALLOC:FAR
EXTRN GLOBALSIZE:FAR
EXTRN INITAPP:FAR
EXTRN POSTQUITMESSAGE:FAR
EXTRN LOCKSEGMENT:FAR
EXTRN UNLOCKSEGMENT:FAR
EXTRN WAITEVENT:FAR
EXTRN GETCLIENTRECT:FAR
EXTRN GETMODULEFILENAME:FAR
EXTRN BEGINPAINT:FAR
EXTRN ENDPAINT:FAR
EXTRN CREATEWINDOW:FAR
EXTRN SHOWWINDOW:FAR
EXTRN LOADCURSOR:FAR
EXTRN LOADICON:FAR
EXTRN REGISTERCLASS:FAR
EXTRN INITTASK:FAR
EXTRN GETSTOCKOBJECT:FAR
EXTRN DRAWTEXT:FAR
EXTRN DOS3CALL:FAR
EXTRN __WINFLAGS:FAR
.CODE
ADD BYTE PTR [BX+SI], AL
ADD BYTE PTR [BX+SI], AL
ADD BYTE PTR [BX+SI], AL
ADD BYTE PTR [BX+SI], AL
ADD BYTE PTR [BX+SI], AL
ADD BYTE PTR [BX+SI], AL
ADD BYTE PTR [BX+SI], AL
ADD BYTE PTR [BX+SI], AL
L0010H: ENTER 002EH, 0
CMP WORD PTR [BP+10], 0
JZ L001DH
JMP L0085H
L001DH: MOV WORD PTR [BP-46], 0003H
MOV WORD PTR [BP-44], OFFSET WndProc
MOV WORD PTR [BP-42], SEG WndProc
MOV WORD PTR [BP-40], 0000H
MOV WORD PTR [BP-38], 0000H
MOV AX, WORD PTR [BP+12]
MOV WORD PTR [BP-36], AX
PUSH 0
PUSH 0
PUSH 7F00H
CALL LOADICON
MOV WORD PTR [BP-34], AX
PUSH 0
PUSH 0
PUSH 7F00H
CALL LOADCURSOR
MOV WORD PTR [BP-32], AX
PUSH 0
CALL GETSTOCKOBJECT
MOV WORD PTR [BP-30], AX
MOV WORD PTR [BP-28], 0000H
MOV WORD PTR [BP-26], 0000H
MOV AX, 0010H
MOV DX, DS
MOV WORD PTR [BP-24], AX
MOV WORD PTR [BP-22], DX
LEA AX, WORD PTR [BP-46]
MOV DX, SS
PUSH DX
PUSH AX
CALL REGISTERCLASS
L0085H: MOV AX, 0010H
MOV DX, DS
PUSH DX
PUSH AX
MOV AX, 00B0H
MOV DX, DS
PUSH DX
PUSH AX
PUSH 00CFH
PUSH 0
PUSH 8000H
PUSH 8000H
PUSH 8000H
PUSH 8000H
PUSH 0
PUSH 0
PUSH WORD PTR [BP+12]
PUSH 0
PUSH 0
CALL CREATEWINDOW
MOV WORD PTR [BP-2], AX
PUSH AX
PUSH WORD PTR [BP+4]
CALL SHOWWINDOW
PUSH WORD PTR [BP-2]
CALL UPDATEWINDOW
L00C8H: LEA AX, WORD PTR [BP-20]
MOV DX, SS
PUSH DX
PUSH AX
PUSH 0
PUSH 0
PUSH 0
CALL GETMESSAGE
AND AX, AX
JZ L00F8H
LEA AX, WORD PTR [BP-20]
MOV DX, SS
PUSH DX
PUSH AX
CALL TRANSLATEMESSAGE
LEA AX, WORD PTR [BP-20]
MOV DX, SS
PUSH DX
PUSH AX
CALL DISPATCHMESSAGE
JMP L00C8H
L00F8H: MOV AX, WORD PTR [BP-16]
LEAVE
RET 000AH
NOP
WndProc PROC FAR PUBLIC
PUSH DS
POP AX
NOP
INC BP
PUSH BP
MOV BP, SP
PUSH DS
MOV DS, AX
SUB SP, 002CH
PUSH SI
PUSH DI
MOV SI, WORD PTR [BP+14]
MOV AX, WORD PTR [BP+12]
JMP L0172H
NOP
L011AH: PUSH SI
LEA AX, WORD PTR [BP-36]
MOV DX, SS
PUSH DX
PUSH AX
CALL BEGINPAINT
MOV DI, AX
PUSH SI
LEA AX, WORD PTR [BP-44]
MOV DX, SS
PUSH DX
PUSH AX
CALL GETCLIENTRECT
PUSH DI
MOV AX, 00BEH
MOV DX, DS
PUSH DX
PUSH AX
PUSH -1
LEA AX, WORD PTR [BP-44]
MOV DX, SS
PUSH DX
PUSH AX
PUSH 37
CALL DRAWTEXT
PUSH SI
LEA AX, WORD PTR [BP-36]
MOV DX, SS
PUSH DX
PUSH AX
CALL ENDPAINT
XOR AX, AX
XOR DX, DX
JMP L0197H
NOP
L0162H: PUSH 0
CALL POSTQUITMESSAGE
XOR AX, AX
XOR DX, DX
JMP L0197H
NOP
JMP L017FH
L0172H: CMP AX, 0002H
JZ L0162H
CMP AX, 000FH
JNZ L017FH
JMP L011AH
L017FH: PUSH SI
PUSH WORD PTR [BP+12]
PUSH WORD PTR [BP+10]
PUSH WORD PTR [BP+8]
PUSH WORD PTR [BP+6]
CALL DEFWINDOWPROC
JMP L0197H
NOP
MOV WORD PTR [BP+14], SI
L0197H: POP DI
POP SI
SUB BP, 2
MOV SP, BP
POP DS
POP BP
DEC BP
RETF 000AH
WndProc ENDP
L01A4H DW OFFSET __WINFLAGS
L01A6H: MOV AL, -1
PUSH AX
CALL L0346H
START: XOR BP, BP
PUSH BP
CALL INITTASK
OR AX, AX
JZ L01A6H
MOV WORD PTR D0054H, ES
ADD CX, 0100H
JB L01A6H
MOV WORD PTR D001EH, CX
MOV WORD PTR D0020H, SI
MOV WORD PTR D0022H, DI
MOV WORD PTR D0024H, BX
MOV WORD PTR D0026H, ES
MOV WORD PTR D0028H, DX
CALL GETVERSION
MOV WORD PTR D0056H, AX
MOV AH, 48
TEST WORD PTR CS:L01A4H, 0001H
JZ L01F4H
CALL DOS3CALL
JMP L01F6H
L01F4H: INT 0021H
L01F6H: MOV WORD PTR D0058H, AX
TEST WORD PTR CS:L01A4H, 0001H
JNZ L0207H
MOV AL, 0
MOV BYTE PTR D005BH, AL
L0207H: XOR AX, AX
PUSH AX
CALL WAITEVENT
PUSH WORD PTR D0022H
CALL INITAPP
OR AX, AX
JZ L01A6H
CALL L0260H
CALL L0422H
CALL L05A0H
CALL L0800H
PUSH WORD PTR D0090H
PUSH WORD PTR D008EH
PUSH WORD PTR D008CH
CALL L0244H
ADD SP, 6
PUSH AX
CALL L033FH
MOV AX, 0015H
JMP L0627H
L0244H: PUSH BP
MOV BP, SP
PUSH WORD PTR D0022H
PUSH WORD PTR D0020H
PUSH WORD PTR D0026H
PUSH WORD PTR D0024H
PUSH WORD PTR D0028H
CALL L0010H
POP BP
RET
L0260H: MOV AX, 3500H
TEST WORD PTR CS:L01A4H, 0001H
JZ L0273H
CALL DOS3CALL
JMP L0275H
L0273H: INT 0021H
L0275H: MOV WORD PTR D0040H, BX
MOV WORD PTR D0042H, ES
PUSH CS
POP DS
MOV AX, 2500H
MOV DX, 0622H
TEST WORD PTR CS:L01A4H, 0001H
JZ L0295H
CALL DOS3CALL
JMP L0297H
L0295H: INT 0021H
L0297H: PUSH SS
POP DS
MOV CX, WORD PTR D00A6H
JCXZ L02C8H
MOV ES, WORD PTR D0054H
MOV SI, WORD PTR ES:D002CH
MOV AX, WORD PTR D00A8H
MOV DX, WORD PTR D00AAH
XOR BX, BX
CALL DWORD PTR D00A4H
JAE L02BAH
JMP L041CH
L02BAH: MOV AX, WORD PTR D00ACH
MOV DX, WORD PTR D00AEH
MOV BX, 0003H
CALL DWORD PTR D00A4H
L02C8H: MOV ES, WORD PTR D0054H
MOV CX, WORD PTR ES:D002CH
JCXZ L0311H
MOV ES, CX
XOR DI, DI
L02D7H: CMP BYTE PTR ES:[DI], 0
JZ L0311H
MOV CX, 000DH
MOV SI, 0032H
REPE CMPSB
JZ L02F2H
MOV CX, 7FFFH
XOR AX, AX
REPNE SCASB
JNZ L0311H
JMP L02D7H
L02F2H: PUSH ES
PUSH DS
POP ES
POP DS
MOV SI, DI
MOV DI, 0064H
MOV CL, 4
L02FDH: LODSB
SUB AL, 65
JB L030FH
SHL AL, CL
XCHG DX, AX
LODSB
SUB AL, 65
JB L030FH
OR AL, DL
STOSB
JMP L02FDH
L030FH: PUSH SS
POP DS
L0311H: MOV SI, 00B0H
MOV DI, 00B0H
CALL L03E3H
MOV SI, 00B0H
MOV DI, 00B0H
CALL L03F2H
MOV SI, 00B0H
MOV DI, 00B0H
CALL L03E3H
MOV SI, 00B0H
MOV DI, 00B0H
CALL L03E3H
MOV SI, 00B0H
MOV DI, 00B0H
CALL L03F2H
RET
L033FH: PUSH BP
MOV BP, SP
XOR CX, CX
JMP L0360H
L0346H: PUSH BP
MOV BP, SP
MOV CX, 0001H
JMP L0360H
PUSH BP
MOV BP, SP
PUSH SI
PUSH DI
MOV CX, 0100H
JMP L0360H
PUSH BP
MOV BP, SP
PUSH SI
PUSH DI
MOV CX, 0101H
L0360H: MOV BYTE PTR D0099H, CH
PUSH CX
OR CL, CL
JNZ L0385H
MOV SI, 022CH
MOV DI, 022CH
CALL L03E3H
MOV SI, 00B0H
MOV DI, 00B0H
CALL L03E3H
MOV SI, WORD PTR [BP+4]
PUSH SI
CALL L0800H
ADD SP, 2
L0385H: MOV SI, 00B0H
MOV DI, 00B0H
CALL L03E3H
MOV SI, 00B0H
MOV DI, 00B0H
CALL L03F2H
CALL L03BAH
POP AX
OR AH, AH
JNZ L03B6H
MOV AX, WORD PTR [BP+4]
MOV AH, 76
TEST WORD PTR CS:L01A4H, 0001H
JZ L03B4H
CALL DOS3CALL
JMP L03B6H
L03B4H: INT 0021H
L03B6H: POP DI
POP SI
POP BP
RET
L03BAH: MOV CX, WORD PTR D00A6H
JCXZ L03C7H
MOV BX, 0002H
CALL DWORD PTR D00A4H
L03C7H: PUSH DS
LDS DX, DWORD PTR D0040H
MOV AX, 2500H
TEST WORD PTR CS:L01A4H, 0001H
JZ L03DFH
CALL DOS3CALL
JMP L03E1H
L03DFH: INT 0021H
L03E1H: POP DS
RET
L03E3H: CMP SI, DI
JAE L03F1H
DEC DI
DEC DI
MOV CX, WORD PTR [DI]
JCXZ L03E3H
CALL CX
JMP L03E3H
L03F1H: RET
L03F2H: CMP SI, DI
JAE L0404H
SUB DI, 4
MOV AX, WORD PTR [DI]
OR AX, WORD PTR [DI+2]
JZ L03F2H
CALL DWORD PTR [DI]
JMP L03F2H
L0404H: RET
L0405H DB 0000H
L0406H: PUSH BP
MOV BP, SP
MOV AX, 00FCH
PUSH AX
CALL L0691H
MOV AX, 00FFH
PUSH AX
CALL L0691H
MOV SP, BP
POP BP
RET
L041BH DB 0000H
L041CH: MOV AX, 0002H
JMP L0627H
L0422H: POP WORD PTR D009CH
MOV AX, 0104H
MOV CX, 0008H
CALL L06C2H
MOV WORD PTR D0094H, DX
MOV WORD PTR D0092H, AX
PUSH DX
PUSH AX
PUSH WORD PTR D0022H
PUSH DX
PUSH AX
MOV AX, 0104H
PUSH AX
CALL GETMODULEFILENAME
POP BX
POP ES
ADD BX, AX
MOV BYTE PTR ES:[BX], 0
MOV DX, 0001H
MOV DI, 0001H
MOV SI, 0081H
MOV DS, WORD PTR D0054H
L045CH: LODSB
CMP AL, 32
JZ L045CH
CMP AL, 9
JZ L045CH
CMP AL, 13
JZ L04D8H
OR AL, AL
JZ L04D8H
INC DI
L046EH: DEC SI
L046FH: LODSB
CMP AL, 32
JZ L045CH
CMP AL, 9
JZ L045CH
CMP AL, 13
JZ L04D8H
OR AL, AL
JZ L04D8H
CMP AL, 34
JZ L04A8H
CMP AL, 92
JZ L048BH
INC DX
JMP L046FH
L048BH: XOR CX, CX
L048DH: INC CX
LODSB
CMP AL, 92
JZ L048DH
CMP AL, 34
JZ L049BH
ADD DX, CX
JMP L046EH
L049BH: MOV AX, CX
SHR CX, 1
ADC DX, CX
TEST AL, 1
JNZ L046FH
JMP L04A8H
L04A7H: DEC SI
L04A8H: LODSB
CMP AL, 13
JZ L04D8H
OR AL, AL
JZ L04D8H
CMP AL, 34
JZ L046FH
CMP AL, 92
JZ L04BCH
INC DX
JMP L04A8H
L04BCH: XOR CX, CX
L04BEH: INC CX
LODSB
CMP AL, 92
JZ L04BEH
CMP AL, 34
JZ L04CCH
ADD DX, CX
JMP L04A7H
L04CCH: MOV AX, CX
SHR CX, 1
ADC DX, CX
TEST AL, 1
JNZ L04A8H
JMP L046FH
L04D8H: PUSH SS
POP DS
MOV WORD PTR D008CH, DI
ADD DX, DI
INC DI
SHL DI, 1
ADD DX, DI
INC DX
AND DL, -2
SUB SP, DX
MOV AX, SP
MOV WORD PTR D008EH, AX
MOV BX, AX
ADD DI, BX
PUSH SS
POP ES
LDS SI, DWORD PTR D0092H
MOV WORD PTR SS:[BX], SI
INC BX
INC BX
MOV DS, WORD PTR SS:D0054H
MOV SI, 0081H
JMP L050CH
L0509H: XOR AX, AX
STOSB
L050CH: LODSB
CMP AL, 32
JZ L050CH
CMP AL, 9
JZ L050CH
CMP AL, 13
JZ L0595H
OR AL, AL
JZ L0595H
MOV WORD PTR SS:[BX], DI
INC BX
INC BX
L0522H: DEC SI
L0523H: LODSB
CMP AL, 32
JZ L0509H
CMP AL, 9
JZ L0509H
CMP AL, 13
JZ L0592H
OR AL, AL
JZ L0592H
CMP AL, 34
JZ L055FH
CMP AL, 92
JZ L053FH
STOSB
JMP L0523H
L053FH: XOR CX, CX
L0541H: INC CX
LODSB
CMP AL, 92
JZ L0541H
CMP AL, 34
JZ L0551H
MOV AL, 92
REP STOSB
JMP L0522H
L0551H: MOV AL, 92
SHR CX, 1
REP STOSB
JAE L055FH
MOV AL, 34
STOSB
JMP L0523H
L055EH: DEC SI
L055FH: LODSB
CMP AL, 13
JZ L0592H
OR AL, AL
JZ L0592H
CMP AL, 34
JZ L0523H
CMP AL, 92
JZ L0573H
STOSB
JMP L055FH
L0573H: XOR CX, CX
L0575H: INC CX
LODSB
CMP AL, 92
JZ L0575H
CMP AL, 34
JZ L0585H
MOV AL, 92
REP STOSB
JMP L055EH
L0585H: MOV AL, 92
SHR CX, 1
REP STOSB
JAE L0523H
MOV AL, 34
STOSB
JMP L055FH
L0592H: XOR AX, AX
STOSB
L0595H: PUSH SS
POP DS
MOV WORD PTR [BX], 0000H
JMP WORD PTR D009CH
L059FH DB 0000H
L05A0H: PUSH BP
MOV BP, SP
PUSH DS
CALL GETDOSENVIRONMENT
OR AX, AX
JZ L05AFH
MOV DX, AX
L05AFH: MOV BX, DX
MOV ES, DX
XOR AX, AX
XOR SI, SI
XOR DI, DI
MOV CX, 0FFFFH
OR BX, BX
JZ L05CEH
CMP BYTE PTR ES:D0000H, 0
JZ L05CEH
L05C8H: REPNE SCASB
INC SI
SCASB
JNZ L05C8H
L05CEH: MOV AX, DI
INC AX
AND AL, -2
INC SI
MOV DI, SI
SHL SI, 1
MOV CX, 0009H
CALL L06C2H
PUSH AX
MOV AX, SI
CALL L06C2H
MOV WORD PTR D0090H, AX
PUSH ES
PUSH DS
POP ES
POP DS
MOV CX, DI
MOV BX, AX
XOR SI, SI
POP DI
DEC CX
JCXZ L061BH
L05F5H: MOV AX, WORD PTR [SI]
CMP AX, WORD PTR SS:D0032H
JNZ L060EH
PUSH CX
PUSH SI
PUSH DI
MOV DI, 0032H
MOV CX, 0006H
REPE CMPSW
POP DI
POP SI
POP CX
JZ L0613H
L060EH: MOV WORD PTR ES:[BX], DI
INC BX
INC BX
L0613H: LODSB
STOSB
OR AL, AL
JNZ L0613H
LOOP L05F5H
L061BH: MOV WORD PTR ES:[BX], CX
POP DS
POP BP
RET
L0621H DB 0000H
PUSH SS
POP DS
MOV AX, 0003H
L0627H: PUSH AX
PUSH AX
CALL L0406H
CALL L0691H
CALL L0666H
XOR BX, BX
OR AX, AX
JZ L0655H
MOV DI, AX
MOV AX, 0009H
CMP BYTE PTR [DI], 77
JNZ L0645H
MOV AX, 000FH
L0645H: ADD DI, AX
PUSH DI
PUSH DS
POP ES
MOV AL, 13
MOV CX, 0022H
REPNE SCASB
MOV BYTE PTR [DI-1], BL
POP AX
L0655H: PUSH BX
PUSH DS
PUSH AX
CALL FATALAPPEXIT
MOV AX, 00FFH
PUSH AX
CALL FATALEXIT
L0666H: PUSH BP
MOV BP, SP
PUSH SI
PUSH DI
PUSH DS
POP ES
MOV DX, WORD PTR [BP+4]
MOV SI, 00E2H
L0673H: LODSW
CMP AX, DX
JZ L0688H
INC AX
XCHG SI, AX
JZ L0688H
XCHG DI, AX
XOR AX, AX
MOV CX, 0FFFFH
REPNE SCASB
MOV SI, DI
JMP L0673H
L0688H: XCHG SI, AX
POP DI
POP SI
MOV SP, BP
POP BP
RET 0002H
L0691H: PUSH BP
MOV BP, SP
PUSH DI
CMP WORD PTR D00A0H, 0
JZ L06BAH
PUSH WORD PTR [BP+4]
CALL L0666H
OR AX, AX
JZ L06BAH
XCHG DX, AX
MOV DI, DX
XOR AX, AX
MOV CX, 0FFFFH
REPNE SCASB
NOT CX
DEC CX
MOV BX, WORD PTR D005EH
CALL L0805H
L06BAH: POP DI
MOV SP, BP
POP BP
RET 0002H
L06C1H DB 0000H
L06C2H: PUSH BP
MOV BP, SP
PUSH BX
PUSH ES
PUSH CX
MOV CX, 1000H
XCHG CX, WORD PTR D009EH
PUSH CX
PUSH AX
CALL L080CH
POP BX
POP WORD PTR D009EH
POP CX
MOV DX, DS
OR AX, AX
JZ L06E4H
POP ES
POP BX
JMP L06E9H
L06E4H: MOV AX, CX
JMP L0627H
L06E9H: MOV SP, BP
POP BP
RET
L06EDH DB 0000H
PUSH CX
PUSH DI
TEST BYTE PTR [BX+2], 1
JZ L0759H
CALL L07E0H
MOV DI, SI
MOV AX, WORD PTR [SI]
TEST AL, 1
JZ L0704H
SUB CX, AX
DEC CX
L0704H: INC CX
INC CX
MOV SI, WORD PTR [BX+4]
OR SI, SI
JZ L0759H
ADD CX, SI
JAE L071AH
XOR AX, AX
MOV DX, 0FFF0H
JCXZ L0748H
JMP L0759H
L071AH: PUSH SS
POP ES
MOV AX, WORD PTR D009EH
CMP AX, 1000H
JZ L073BH
MOV DX, 8000H
L0728H: CMP DX, AX
JB L0732H
SHR DX, 1
JNZ L0728H
JMP L0754H
L0732H: CMP DX, 8
JB L0754H
SHL DX, 1
MOV AX, DX
L073BH: DEC AX
MOV DX, AX
ADD AX, CX
JAE L0744H
XOR AX, AX
L0744H: NOT DX
AND AX, DX
L0748H: PUSH DX
CALL L077AH
POP DX
JAE L075CH
CMP DX, -16
JZ L0759H
L0754H: MOV AX, 0010H
JMP L073BH
L0759H: STC
JMP L0777H
L075CH: MOV DX, AX
SUB DX, WORD PTR ES:[BX+4]
MOV WORD PTR [BX+4], AX
MOV WORD PTR [BX+10], DI
MOV SI, WORD PTR [BX+12]
DEC DX
MOV WORD PTR [SI], DX
INC DX
ADD SI, DX
MOV WORD PTR [SI], 0FFFEH
MOV WORD PTR [BX+12], SI
L0777H: POP DI
POP CX
RET
L077AH: MOV DX, AX
TEST BYTE PTR [BX+2], 4
JZ L0784H
JMP L07D5H
L0784H: PUSH DX
PUSH CX
PUSH BX
MOV SI, WORD PTR [BX+6]
MOV BX, WORD PTR CS:L01A4H
XOR CX, CX
OR DX, DX
JNZ L079CH
TEST BX, 0010H
JNZ L07DBH
INC CX
L079CH: MOV AX, 0022H
TEST BX, 0001H
JNZ L07A8H
MOV AX, 0020H
L07A8H: PUSH SI
PUSH CX
PUSH DX
PUSH AX
CALL GLOBALREALLOC
OR AX, AX
JZ L07DBH
CMP AX, SI
JNZ L07D5H
PUSH SI
CALL GLOBALSIZE
OR DX, AX
JZ L07D5H
POP BX
POP CX
POP DX
MOV AX, DX
TEST BYTE PTR [BX+2], 4
JZ L07D2H
DEC DX
MOV WORD PTR [BX-2], DX
L07D2H: CLC
JMP L07DFH
L07D5H: MOV AX, 0012H
JMP L0627H
L07DBH: POP BX
POP CX
POP DX
STC
L07DFH: RET
L07E0H: PUSH DI
MOV SI, WORD PTR [BX+10]
CMP SI, WORD PTR [BX+12]
JNZ L07ECH
MOV SI, WORD PTR [BX+8]
L07ECH: LODSW
CMP AX, -2
JZ L07FAH
MOV DI, SI
AND AL, -2
ADD SI, AX
JMP L07ECH
L07FAH: DEC DI
DEC DI
MOV SI, DI
POP DI
RET
L0800H: PUSH BP
MOV BP, SP
POP BP
RET
L0805H: MOV AX, 0014H
JMP L0627H
L080BH DB 0000H
L080CH: PUSH BP
MOV BP, SP
SUB SP, 4
MOV AX, 0FFFFH
PUSH AX
CALL LOCKSEGMENT
MOV AX, 0020H
PUSH AX
CMP WORD PTR [BP+4], 0
JZ L082AH
MOV AX, WORD PTR [BP+4]
JMP L082DH
L082AH: MOV AX, 0001H
L082DH: PUSH AX
CALL LOCALALLOC
MOV WORD PTR [BP-2], AX
MOV AX, 0FFFFH
PUSH AX
CALL UNLOCKSEGMENT
MOV AX, WORD PTR [BP-2]
MOV SP, BP
POP BP
RET
PUSH BP
MOV BP, SP
PUSH WORD PTR [BP+4]
CALL LOCALFREE
MOV SP, BP
POP BP
RET
NOP
PUSH BP
MOV BP, SP
SUB SP, 4
CMP WORD PTR [BP+4], 0
JNZ L086EH
PUSH WORD PTR [BP+6]
CALL L080CH
ADD SP, 2
JMP L08A2H
NOP
L086EH: MOV AX, 0FFFFH
PUSH AX
CALL LOCKSEGMENT
PUSH WORD PTR [BP+4]
CMP WORD PTR [BP+6], 0
JZ L0886H
MOV AX, WORD PTR [BP+6]
JMP L0889H
NOP
L0886H: MOV AX, 0001H
L0889H: PUSH AX
MOV AX, 0062H
PUSH AX
CALL LOCALREALLOC
MOV WORD PTR [BP-2], AX
MOV AX, 0FFFFH
PUSH AX
CALL UNLOCKSEGMENT
MOV AX, WORD PTR [BP-2]
L08A2H: MOV SP, BP
POP BP
RET
PUSH BP
MOV BP, SP
PUSH WORD PTR [BP+4]
CALL LOCALSIZE
MOV SP, BP
POP BP
RET
NOP
.DATA
D0000H DB 0000H
D0001H DB 0000H
D0002H DB 0000H
D0003H DB 0000H
D0004H DB 0005H
D0005H DB 0000H
D0006H DB 0000H
D0007H DB 0000H
D0008H DB 0000H
D0009H DB 0000H
D000AH DB 0000H
D000BH DB 0000H
D000CH DB 0000H
D000DH DB 0000H
D000EH DB 0000H
D000FH DB 0000H
D0010H DB "WDASM Example"
D001DH DB 0000H
D001EH DB 0000H
D001FH DB 0000H
D0020H DB 0000H
D0021H DB 0000H
D0022H DB 0000H
D0023H DB 0000H
D0024H DB 0000H
D0025H DB 0000H
D0026H DB 0000H
D0027H DB 0000H
D0028H DB 0000H
D0029H DB 0000H
D002AH DB 0001H
D002BH DB 0000H
D002CH DB 00FFH
D002DH DB 00FFH
D002EH DB 0000H
D002FH DB 0000H
D0030H DB 0000H
D0031H DB 0000H
D0032H DB "_C_FILE_INFO="
D003FH DB 0000H
D0040H DB 0000H
D0041H DB 0000H
D0042H DB 0000H
D0043H DB 0000H
D0044H DB 0000H
D0045H DB 0000H
D0046H DB 0000H
D0047H DB 0000H
D0048H DB 0000H
D0049H DB 0000H
D004AH DB 0000H
D004BH DB 0000H
D004CH DB 0000H
D004DH DB 0000H
D004EH DB 0000H
D004FH DB 0000H
D0050H DB 0000H
D0051H DB 0000H
D0052H DB 0000H
D0053H DB 0000H
D0054H DB 0000H
D0055H DB 0000H
D0056H DB 0000H
D0057H DB 0000H
D0058H DB 0000H
D0059H DB 0000H
D005AH DB 0002H
D005BH DB 0001H
D005CH DB 0000H
D005DH DB 0000H
D005EH DB 0014H
D005FH DB 0000H
D0060H DB 0014H
D0061H DB 0000H
D0062H DB 0028H
D0063H DB 0000H
D0064H DB 0000H
D0065H DB 0000H
D0066H DB 0000H
D0067H DB 0000H
D0068H DB 0000H
D0069H DB 0000H
D006AH DB 0000H
D006BH DB 0000H
D006CH DB 0000H
D006DH DB 0000H
D006EH DB 0000H
D006FH DB 0000H
D0070H DB 0000H
D0071H DB 0000H
D0072H DB 0000H
D0073H DB 0000H
D0074H DB 0000H
D0075H DB 0000H
D0076H DB 0000H
D0077H DB 0000H
D0078H DB 00C1H
D0079H DB 0000H
D007AH DB 0000H
D007BH DB 0000H
D007CH DB 0000H
D007DH DB 0000H
D007EH DB 0000H
D007FH DB 0000H
D0080H DB 0000H
D0081H DB 0000H
D0082H DB 0000H
D0083H DB 0000H
D0084H DB 0000H
D0085H DB 0000H
D0086H DB 0000H
D0087H DB 0000H
D0088H DB 0000H
D0089H DB 0000H
D008AH DB 0000H
D008BH DB 0000H
D008CH DB 0000H
D008DH DB 0000H
D008EH DB 0000H
D008FH DB 0000H
D0090H DB 0000H
D0091H DB 0000H
D0092H DB 0096H
D0093H DB 0000H
D0094H DB 0000H
D0095H DB 0000H
D0096H DB 0000H
D0097H DB 0000H
D0098H DB 0000H
D0099H DB 0000H
D009AH DB 0000H
D009BH DB 0000H
D009CH DB 0000H
D009DH DB 0000H
D009EH DB 0000H
D009FH DB 0010H
D00A0H DB 0000H
D00A1H DB 0000H
D00A2H DB 0000H
D00A3H DB 0000H
D00A4H DB 0000H
D00A5H DB 0000H
D00A6H DB 0000H
D00A7H DB 0000H
D00A8H DB 0000H
D00A9H DB 0000H
D00AAH DB 0000H
D00ABH DB 0000H
D00ACH DB 0000H
D00ADH DB 0000H
D00AEH DB 0000H
D00AFH DB 0000H
D00B0H DB "WDASM Example"
D00BDH DB 0000H
D00BEH DB "Congratulations, it works!"
D00D8H DB 0000H
D00D9H DB 0000H
D00DAH DB "<<NMSG>>"
D00E2H DB 0000H
D00E3H DB 0000H
D00E4H DB "R6000"
D00E9H DB 000DH
D00EAH DB 000AH
D00EBH DB "- stack overflow"
D00FBH DB 000DH
D00FCH DB 000AH
D00FDH DB 0000H
D00FEH DB 0003H
D00FFH DB 0000H
D0100H DB "R6003"
D0105H DB 000DH
D0106H DB 000AH
D0107H DB "- integer divide by 0"
D011CH DB 000DH
D011DH DB 000AH
D011EH DB 0000H
D011FH DB 0009H
D0120H DB 0000H
D0121H DB "R6009"
D0126H DB 000DH
D0127H DB 000AH
D0128H DB "- not enough space for environment"
D014AH DB 000DH
D014BH DB 000AH
D014CH DB 0000H
D014DH DB 0012H
D014EH DB 0000H
D014FH DB "R6018"
D0154H DB 000DH
D0155H DB 000AH
D0156H DB "- unexpected heap error"
D016DH DB 000DH
D016EH DB 000AH
D016FH DB 0000H
D0170H DB 0014H
D0171H DB 0000H
D0172H DB "R6020"
D0177H DB 000DH
D0178H DB 000AH
D0179H DB "- unexpected QuickWin error"
D0194H DB 000DH
D0195H DB 000AH
D0196H DB 0000H
D0197H DB 0008H
D0198H DB 0000H
D0199H DB "R6008"
D019EH DB 000DH
D019FH DB 000AH
D01A0H DB "- not enough space for arguments"
D01C0H DB 000DH
D01C1H DB 000AH
D01C2H DB 0000H
D01C3H DB 0015H
D01C4H DB 0000H
D01C5H DB "R6021"
D01CAH DB 000DH
D01CBH DB 000AH
D01CCH DB "- no main procedure"
D01DFH DB 000DH
D01E0H DB 000AH
D01E1H DB 0000H
D01E2H DB 00FCH
D01E3H DB 0000H
D01E4H DB 000DH
D01E5H DB 000AH
D01E6H DB 0000H
D01E7H DB 00FFH
D01E8H DB 0000H
D01E9H DB "run-time error "
D01F8H DB 0000H
D01F9H DB 0002H
D01FAH DB 0000H
D01FBH DB "R6002"
D0200H DB 000DH
D0201H DB 000AH
D0202H DB "- floating-point support not loaded"
D0225H DB 000DH
D0226H DB 000AH
D0227H DB 0000H
D0228H DB 00FFH
D0229H DB 00FFH
D022AH DB 00FFH
D022BH DB 0000H
END START